A typical video surveillance application comprises many cameras, camera network switches, recording servers, storage system and video management software (VMS). The goal of this kind of application is to provide situational awareness not only allowing a small number of individuals (e.g., guards) to monitor a broad expanse of physical plant and/or property, but also to provide a recoverable record of events that might have occurred. This capability helps to better understand what happened and facilitates recovery, arbitration of disputes and improvement of flawed procedures. Therefore, one of the most important goals is to make sure that video streams from cameras are recorded properly onto storage systems. Often, video streams are not recorded due to component failures or software errors, or configuration mistakes. Additionally, it is possible that some frames of video fail to reach storage due to congestion in network paths, congestion on servers (e.g., not enough processing power) or storage performance (e.g., limited write input output operations per second (IOPS)). This leads to gaps in the video, potentially at critical moments. Another problem is the premature deletion of video files to make room for new video data due to system storage limitations or, worse, malicious deletion of video evidence. The consequences are that critical moments of video data are not available as expected when investigators attempt to retrieve them.
Up until now, figuring out if the video streams are properly recorded has been a complex manual process. Existing network monitoring tools provide a large number of measures but don't accurately identify whether each video stream is working properly, recording completely and being retained for the intended period of time. The best they can do is to identify more obvious situations where physical devices fail completely. Worse, some tools bombard users with false alarms or large numbers of complex signals, including excess amount of non-essential information (noise). The result is that users don't know what to pay attention to or what it truly means. As a consequence, even the most sophisticated operations are forced to use human resources to manually check that each camera and associated video streams are okay on some periodic basis. This checking process requires viewing and playing back the recorded videos on each camera stream as well as validating that recordings are saved for the intended retention cycle.
Invariably, because these manual operations are imperfect or because human limitations cannot keep track of all the camera and video streams effectively enough, many operations only discover a problem with missing video data only after an event has occurred. At that point, the video isn't available, it is too late and the data is lost and the value of the investment in video surveillance infrastructure is diminished.
The present disclosure illustrates methods of creating definite metrics for video surveillance applications that address these problems, leading to better operational awareness and better efficacy. The disclosure also provides a mechanism that can proactively alert users when there are real issues associated with these video surveillance applications, helping people responsible for the infrastructure to focus only when the applications need servicing attention.